Repository navigation
chore(deps): update dependency effect to v4.0.6 - #533
Closed
renovate[bot] wants to merge 1 commit into
Closed
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
Contributor
|
Held. effect, @effect/platform-node and @effect/platform-node-shared move together, as #461 did for 4.0.5, because each platform package at 4.0.6 declares effect ^4.0.6 as a peer. That change supersedes this bump, and #531 is held for the same reason. CI is also red here because the plugin modules' fixed-output hash in flake.nix did not move with the lock. Once the change moving all three lands, this pull request is closed with a link to it. |
renovate
Bot
force-pushed
the
renovate/effect-4.x
branch
from
October 29, 2026 22:48
faaa171 to
98bf2b9
Compare
This was referenced Oct 30, 2026
GraemeF
added a commit
that referenced
this pull request
Oct 30, 2026
…535) @effect/platform-node 4.0.6 and @effect/platform-node-shared 4.0.6 declare effect ^4.0.6 as a peer, so Renovate's three separate bumps (#531, #533, #534) cannot land one at a time. This moves all three pins, the plugin lock and pluginModules' hash in one change. The lock moves only the three effect packages, and the undici it already holds meets platform-node's new range. The 4.0.6 notes are fixes and additions. FileSystem.lstat is new, and a custom FileSystem must now provide it, but the plugin uses only NodeFileSystem. EPERM now reads as PermissionDenied rather than Unknown, and the plugin matches on neither. Imports of effect's nested internal modules are now blocked, and the plugin imports only public entry points. The rest touches HTTP servers, clusters, event logs and the CLI, none of which the plugin uses.
Contributor
auto-merge was automatically disabled
October 30, 2026 00:55
Pull request was closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
4.0.5→4.0.6Release Notes
Effect-TS/effect (effect)
v4.0.6Compare Source
Patch Changes
#9674
ce13a48Thanks @effect-bot! - AllowResponse.AllParts,Response.PartandResponse.StreamPartto be called without a toolkit, decoding tool call and tool result parts for any tool name withunknownparameters and results.#9696
f3bbbb4Thanks @gcanti! - FixArray.unionWithcalling custom equivalence callbacks with values from the wrong input or in the wrong order.#9511
5547315Thanks @sledorze! - Speed up field copying inData.Class,Data.Error,Request.ClassandPersistableconstructors.#9743
6093cfbThanks @effect-bot! - FixAsyncResultequality treating unrelatedEqualvalues with a matching tag and hash as equal.#9607
30319d5Thanks @effect-bot! - Fix Effect atoms dropping the latest exposed success when an asynchronous run fails, so aninitialValueor a success published withget.setSelfremains available as the failure's previous success.#9313
74a7596Thanks @effect-bot! - Preserve Reactivity and global layers when replacing an atom runtime layer through registry initial values, so injected test layers retain shared invalidation and global services.#9190
bfb32a3Thanks @danieljvdm! - Log Atom scope finalizer failures atReferences.UnhandledLogLevelwhen an atom is disposed, using the atom runtime's logger. Interruption-only cleanup is not logged.#9522
f8bf7f4Thanks @tim-smart! - Add askipInitialRunoption toAtom.serializableandAtom.initialValue. A seeded effect or stream atom then keeps its hydrated or initial value instead of running on mount, until it is refreshed or a dependency changes. Factoryget(...)calls andwithReactivitykeys are still tracked; dependencies read inside the effect are tracked from its first real run.#9718
7f3d3dfThanks @fubhy! - AddBase64Url.encodePaddedand apaddingoption toSchemaGetter.encodeBase64Urlfor consumers that require padded URL-safe Base64.#9698
db1046dThanks @effect-bot! - EncodeHttpClientRequest.basicAuthcredentials as UTF-8 before base64 encoding, so non-ASCII usernames and passwords no longer throw or get mangled.#9326
3c4f88aThanks @effect-bot! - Block imports of nested internal modules in the development and published package exports. These implementation details are not public APIs; public entry points remain available.#9441
916e709Thanks @fubhy! - Add the unstableBytesmodule withconcat,Equivalence, andOrderforUint8Arrayvalues.Stream.mkUint8Arraynow returnsUint8Array<ArrayBuffer>. Browser HTTP clients collect streamed request bodies without repeatedly copying accumulated bytes.#9470
916f843Thanks @tim-smart! - Reduce EventLog remote replay overhead by reusing decoded conflict payloads within each batch.#9617
66ec757Thanks @Marve10s! - FixEffect.cachedInvalidateWithTTLcaching a stale result when invalidated while the effect is running.#9499
daac06fThanks @schutzelaars! - FixEffect.callbackretaining completed suspension state, such as values received byDeferred.awaitorPubSub.take, until the next full GC.#9727
c2552ecThanks @Marve10s! - FixCause.pretty,Cause.prettyErrors, loggers andrunMainoverflowing the stack when an error'scausechain is cyclic.#9540
b02c1cdThanks @Marve10s! - Preserve falsy nested error causes (0,false,"",null) inCause.prettyErrorsandCause.pretty.#9418
1855f1dThanks @jpowersdev! - FixChannel.fromTransformStreamso an upstream failure is reported when a read is pending, instead of the error raised by aborting the transform stream.#9602
683ed2cThanks @effect-bot! - PreservePrompt.FilePartbyte and URL data when chat history is exported or persisted as JSON. Encoding now produces tagged{ _tag: "Uint8Array", base64 }and{ _tag: "URL", href }objects that decode back to their original types, andChat.Persistencereports undecodable stored history as aPersistenceErrorinstead of a defect.#9238
ac68940Thanks @effect-bot! - Fix child-process cleanup withoutforceKillAfterto give remaining process-group members up to one second to exit after the leader exits. Clarify that waiting for the leader has no time limit and never escalates toSIGKILLwhenforceKillAfteris omitted.#9611
22a8401Thanks @itisrmk! - FixChunk.getandChunk.getUnsafethrowing on in-range fractional indexes of one-element chunks, and treatNaNand infinite indexes as out of bounds.#9287
c53c194Thanks @devangpratap! - Fix the CLI lexer treating a short option cluster with an inline value, such as-vn=3, as one unknown flag instead of-v -n=3. A single dash followed by a multi-character name, such as-num=3, is now also split into separate flags; use--num=3instead.#9655
ca6d1ccThanks @effect-bot! - AddCommand.validateandCliError.ValidationErrorto the unstable CLI.validatechecks the parsed input before the handler runs, for rules such as mutually exclusive flags. A failure is shown with the command help, like any parse error.#9650
47940c5Thanks @effect-bot! - AddFlag.withNegationandFlag.withoutNegation(withParamcounterparts) to rename or remove the--no-<name>form of boolean flags in parsing and shell completions.#9285
e8b24efThanks @okarin1511! - Fix the CLI treating--=valueas a flag with an empty name. The argument is now passed through unchanged as a plain value, so it no longer fails withUnrecognized flag: --.#9666
2e8aae0Thanks @effect-bot! - AllowCommand.withExamplesto take a function that receives{ commandPath }, so help examples match wherever a command is mounted.#8350
ad7497bThanks @ArjunCodess! - Add aTerminalCapabilitiesreference and layer toeffect/cli; built-inCommandhelp, version, and error output now follows it, soFORCE_COLORenables color off a TTY andTERM=dumbdisables it.#9248
7f504a3Thanks @bezff! - Fix the ClickHouse migrator creating its ledger with SQLite syntax and wrapping the run inBEGIN TRANSACTION.#9395
99e365dThanks @effect-bot! - PreventEffect.forkInandEffect.forkScopedfrom running work in an already-closed scope, even whenstartImmediatelyoruninterruptibleis enabled. They now return an interrupted fiber without executing the supplied effect.#9407
954067dThanks @effect-bot! - Log and retry failures when scheduling the initial ClusterCron run so transient failures no longer leave the cron stopped.#9677
3e1a035Thanks @effect-bot! - FixClusterCronwithcalculateNextRunFromPrevious: truenot resuming after its pending run was lost.In this mode every run is now processed by a single
executorentity per cron job, so a restart no longer starts a second chain: runs never overlap and missed runs are caught up in order. Pending runs scheduled by earlier releases join the executor's chain. As a result,Entity.CurrentAddressinsideexecuteno longer identifies the scheduled time; use the newClusterCron.CurrentScheduledTimeservice instead, which is available in both modes.Failed runs are still retried until they succeed or are older than
skipIfOlderThan, but in this mode a failing run now blocks later runs while it is retried, instead of later runs executing alongside it.#9577
41a1fe7Thanks @tim-smart! -ClusterMetrics.entitiesnow reads the active entity count when metrics are snapshotted, instead of being updated by a loop once a second. The series is recorded in theMetricRegistryof the entity manager's context and removed when the entity manager shuts down.#9475
bcb3a86Thanks @effect-bot! - Warn when a forced cluster shard release remains pending beyondshardLockExpiration, including the affected shards and pending entity types and singletons. Release failures now emit rate-limited warnings while preserving the requirement that teardown and lock release finish before reacquisition.#9336
739d3d1Thanks @effect-bot! - Answer fresh, locally owned persisted cluster requests from a reply handler registered before the request is saved, instead of reading every local reply back from storage or polling for it. Duplicates and streams still read their replies from storage, and a dropped reply handler now falls back to storage immediately instead of waiting for the next poll.MessageStorage.registerReplyHandlermust register its handler as soon as the effect starts.#9732
ed4da35Thanks @effect-bot! - Read persisted cluster messages from storage as soon as their entity type registers, instead of waiting for the nextentityMessagePollInterval.#9716
3d84e19Thanks @tim-smart! - Fix cluster shard releases waiting outentityTerminationTimeoutwhen the shard moves while an entity is waiting to restart after a defect.#9256
cc00906Thanks @Tanner-Scadden! - AddClusterMetrics.shardReleaseDuration, a timer recording how long each completed shard release takes.#9244
09ba1f5Thanks @effect-bot! - Keep the cluster shards gauge accurate when shards are released or shard locks are lost.#9513
9ff1a73Thanks @effect-bot! - Repeat the stalled forced shard release warning everymax(shardLockExpiration, 30 seconds)while the release stays pending, and add theClusterMetrics.shardsReleasinggauge (effect_cluster_shards_releasing) counting the shards a runner is still releasing.#9443
06bc532Thanks @effect-bot! - Fix a Sharding startup race that could access singleton synchronization before initialization, causing a ReferenceError and delaying shutdown.#6441
97bfd84Thanks @sbking! - Fix SQL Server support in clusterSqlMessageStorage. Message claims and duplicate checks now use valid T-SQL. The SQL Server tables use filtered unique indexes instead of nullableUNIQUEconstraints, andNVARCHAR(MAX)instead ofTEXT, so keyless messages and chunked replies can be stored.#9645
25efaefThanks @effect-bot! - FixClusterWorkflowEnginelosing aWorkflow.interruptsent while a run was still saving itsSuspendedreply.#9394
c10335bThanks @effect-bot! - Fix suspended cluster workflow scopes not being released when an execution completes. Earlier runs retain their resources through suspension and release them on completion or owner teardown, without running durable workflow finalizers on abandonment.#9490
a808972Thanks @tim-smart! - Remove regex lookbehind from ConfigProvider variable expansion to prevent module-loading syntax errors on Safari versions before 16.4, while preserving interpolation and escaping behavior.#9621
20e844cThanks @Marve10s! - FixConfig.schemadropping record entries for numeric key schemas such asSchema.IntorSchema.Number.#9539
b9f73f3Thanks @Marve10s! - FixCron.prevskipping an occurrence earlier in the same second as the input.#9719
5739878Thanks @Marve10s! - FixDateTime.formatIsoDateandDateTime.formatIsoDateUtcdropping the day for years before 0000 or after 9999.#9654
28acdf3Thanks @okarin1511! - Fix DateTime.zoneFromString rejecting "GMT" and accept compact UTC offsets without colon#9582
59b6396Thanks @itisrmk! - Accept lowercasezandgmtzone designators inDateTime.makeandDateTime.makeUnsafe. These strings previously had a secondZappended and were rejected.#9725
0bccc9cThanks @Marve10s! - FixDateTimevalues in named time zones turning year zero and BCE dates into CE years.#9437
fed70deThanks @effect-bot! - AddDecisionModel.decideSettledto retain valid answers alongside per-decisionResultfailures (Missing,Refused,NoDistribution, orInvalid). Provider failures still fail the effect;decideremains all-or-nothing.OpenRouter now passes missing distributions to core validation. OpenAI reports refusals per decision and wrong-kind score answers as invalid rather than missing.
Update hand-built services to implement
decideSettled, handle optional providerprobabilitiesand refusal answers, and use settled outcomes instead of the removedOpenAiContentPolicyMetadataandmetadata.openai.refusedDecisions.#9422
82648a2Thanks @candrewlee14! -DecisionModel.decidenow returns the responseid, themodelIdthat answered and providermetadata.OpenRouterDecisionModelreportscostand the serving provider undermetadata.openrouter.#9436
afb5f32Thanks @jpowersdev! - FixChannel.decodeTextandStream.decodeTextdropping incomplete trailing characters. Flush buffered bytes on normal completion, emitting U+FFFD by default or a defect withfatal: true.#9325
28813f5Thanks @effect-bot! - Rerun reactive queries only once per invalidation or batch flush when multiple keys match the same query, avoiding duplicate query results and atom refreshes.#9692
0fae934Thanks @effect-bot! - Destroy theAsyncResourcea fiber captures when it yields once the fiber resumes, so tools like vitest'sdetectAsyncLeaksno longer reporteffect/Fiberleaks.#9410
f260830Thanks @effect-bot! - Send an initial DevTools Ping immediately so a server that only responds to client messages can complete startup without waiting for the connection timeout.#9329
19b63ebThanks @effect-bot! - Include disposal library types in the Effect and ManagedRuntime declarations so non-Node consumers can type-check imports without explicitly enablingESNext.Disposable.#9258
14db221Thanks @devangpratap! - FixDuration.fromInputUnsafelosing nanosecond precision for large integer tuple and object inputs.#9506
679f956Thanks @tim-smart! - UseEffect.fnUntracedfor internal functions that returnedEffect.gen.#9604
b72707cThanks @effect-bot! - Document howEffect.resultandEffect.optionhandle causes that mix typed errors with interruptions or defects, and the parameter-count rule that decides whetherEffect.promise,Effect.tryPromiseandEffect.callbackprovide anAbortSignal.#9552
44c8c1dThanks @wmaurer! - Add an optionalbatchKeytoEmbeddingModel.maketo group concurrentembedcalls by provider-relevant context. OpenAI and OpenAI-compatible providers now separate batches with different configuration overrides or client transforms. Undeclared context, such as per-callFetchHttpClient.RequestInit, still uses the first caller's value.#9148
1e7909bThanks @fubhy! - Addeffect/encoding/Tarfor streaming tar decoding and encoding. Decode v7, USTAR, PAX and non-sparse GNU archives; encode USTAR with PAX headers as needed. Entry constructors use reproducible defaults.#9420
0611a65Thanks @jpowersdev! - Add the experimentalXmlmodule toeffect/encodingfor streaming XML 1.0 decoding and encoding over text or UTF-8 bytes. Decoding checks well-formedness, enforces size and depth limits, and never reads external resources or expands DOCTYPE entities.elementscollects repeated elements, such as feed items, into trees.#9419
2fadc65Thanks @jpowersdev! - Add experimentaleffect/encoding/Zipfor streaming zip encoding and decoding. Encode and decode stored and deflated entries, with ZIP64 when needed; decoding reads entries as the archive arrives and checks each body's CRC-32 and sizes. This API may receive breaking changes in patch releases.#9578
feb6ce5Thanks @tim-smart! - Add the always-onClusterMetrics.entityMailboxSizeMaxgauge, which reports the largest mailbox size among the resident entities of each type, read when metrics are snapshotted.#9572
5a2ed53Thanks @tim-smart! - Add the unstableMetric.remove,Metric.removeUnsafeandMetric.registerUnsafeAPIs for removing series and registering series whose value is read on snapshot. The OTLP and OpenTelemetry exporters now drop delta state for series that are no longer registered. Add the opt-inClusterMetrics.entityMailboxSizegauge, enabled withShardingConfig.entityMailboxMetricsor themailboxMetricsentity option, which reports the mailbox size of each resident entity and removes the series when the entity is released.#9721
c8d26a4Thanks @Marve10s! - FixEquivalence.combineAlllosing its criteria after the first comparison when given a one-shot iterable.#9482
0c8b446Thanks @tim-smart! - Track the source remote of each imported entry inSqlEventJournaland the IndexedDBEventJournal, instead of one row per entry per remote.#9448
05c3409Thanks @tim-smart! - Fix the memory and IndexedDBEventJournaladvancing a remote's sequence for a batch whose callback failed, and the memory journal missing conflicts while a clock-skewed local write leaves it unordered.#9479
b04191bThanks @tim-smart! - Encrypted event log replication now encrypts entries in batches of up to 100 entries or about 256 KB of payload, one AES-GCM call per batch, and encrypted servers store and stream those batches. Each batch authenticates its store id and plaintext entry ids. This changes the encrypted protocol, APIs and server tables without migration: upgrade encrypted clients and servers together, and start encrypted servers on fresh storage because existing per-entry rows are not read.Breaking changes
EncryptedEntryandEncryptedRemoteEntryare replaced byEncryptedBatchandEncryptedRemoteBatch, andWriteEntries.encryptedEntriesbecomesbatches.EventLogEncryption.encryptanddecrypttake the store id and work on batches, and thedecodeChangesoption ofEventLogRemote.makeWithreceives the store id.EventLogServerEncrypted.Storage.writeandchangesuse batches,PersistedEntryis removed, andSqlEventLogServerEncryptedno longer acceptsinsertBatchSize.Event journals now keep the first copy of an entry that is repeated within one remote delivery, and
SqlEventJournaladvances an entry's remote sequence when it arrives again later, sonextRemoteSequencepasses it.#9448
05c3409Thanks @tim-smart! -EventJournal.writeFromRemotenow hands itseffectthe whole batch with conflicts read up front, andEventLog.HandlerTransactionruns a replayed batch's handlers in one transaction.#9445
4067e64Thanks @tim-smart! - Flush EventLog reactivity invalidations once per replayed remote batch instead of once per entry.#9471
e04563dThanks @tim-smart! - Speed up UUID formatting and memoizeEventJournal.Entry.idString.#9491
02d7fc5Thanks @tim-smart! - AddEventLog.groupBatchCompactionfor compaction across primary keys, with explicit forwarding or dropping of undecodable entries. Both compaction APIs now provideforward(entry)to preserve entries unchanged at their original batch positions. Align server compaction output ordering with client replay.#9521
561d2a1Thanks @tim-smart! - Generate EventLog entry ids from a hybrid logical clock, so a local write always sorts after every entry committed to its journal, even when the local clock is behind.writeMany. Inside an enclosing SQL transaction, local ids also sort after its uncommitted rows, and a rollback leaves nothing behind.Clockservice.EventJournalErrorinstead of committing ids that sort before it.makeEntryIdUnsafethrows aRangeErroronce its own sequence passes the range. Ids created with an explicitmsecsstill clamp.#9520
8fe2dccThanks @tim-smart! - Order EventLog conflicts by entry id in every journal and the unencrypted server, so replicas converge. A conflict is now a stored entry for the same event and primary key with a strictly greater id, remote batches replay in id order after compaction, and compaction replacements are ordered and conflict-checked by the source entry they are anchored to.#9507
a8086faThanks @tim-smart! - Fix event log server compaction failing with an argument-limit error on large groups, and stop scanning the whole in-memory journal on replay.#9444
88a33b4Thanks @tim-smart! - DecodeEventJournalentry timestamps without allocating, and merge remote imports into the in-memory journal instead of re-sorting it on every batch.#9508
e77372aThanks @tim-smart! - Send chunked event-log remote writes with up to four parts in flight instead of one at a time.#9480
3dd4388Thanks @tim-smart! - Reduce per-entry overhead inEventLogremote replay by caching payload decoders per handler and merging handler contexts once per batch.#9523
ba2b00cThanks @tim-smart! - Add the unstableeffect/eventlog/EventRowmodule for convergent row updates withset,patchandremoveevents. It supports single-field, composite and derived keys, per-field conflict resolution through typed storage callbacks, and compaction that drops superseded entries. The constructors return{ event, payload }, which spreads intoEventLog.writeand works as awriteManyitem or client argument.Breaking: the function returned by
EventLog.makeClientnow takes one{ event, payload }object instead of positionaleventandpayloadarguments.#9224
a049d4aThanks @effect-bot! - Allow event-log authentication to retry failed session-auth binding lookups after storage recovers, while continuing to cache successful lookups.#9478
84aeedeThanks @tim-smart! - Skip decrypting remote changes the local event journal already stores, and pass entry bytes to WebCrypto without copying them.EventJournalgains a requiredentriesByIdmethod, which custom journal implementations must add.#9526
43e5e19Thanks @tim-smart! - Fail and retry an EventLog remote replay batch when an entry fails to decode or its handler fails, instead of committing the entry without applying it.#9473
77bbf16Thanks @tim-smart! - Speed up decoding of eventlog entries and unencrypted write frames by building instances from already validated fields. The wire format is unchanged.#9477
6af3a47Thanks @tim-smart! - Acknowledge event log writes instead of echoing them to the writing connection. Breaking protocol change: upgrade clients and servers together; mixed versions are unsupported.Custom implementations must add
EventJournal.writeRemoteAcks, add encryptedStorage.entrySequences(the sequence each entry was first stored at, used to acknowledge skipped batches), and returnRemoteEntryvalues from unencryptedStorage.entriesAfter. SetfirstSequencewhen sequences start above 0. Custom remotes can still returnvoidfromwriteto confirm uploads through the change stream.SqlEventLogServerEncryptedadds a sequence column to its entry id tables, so encrypted servers still need fresh storage.#9452
aac8d21Thanks @tim-smart! - AddEventLog.writeManyandEventJournal.writeMany, which write a batch of local events under one lock, one handler transaction and one journal commit. Clock-based entry ids are now strictly ascending within a process.#9690
84c8dc4Thanks @effect-bot! - Document thatHttpClient.followRedirectsneedsFetchHttpClient.RequestInitwith{ redirect: "manual" }when used withFetchHttpClient.#9603
78d1988Thanks @effect-bot! - Wait for replacedFiberMapandFiberHandlefibers to finish their interruption cleanup before the owning scope finishes closing.#9729
5676a2aThanks @Marve10s! - FixFiber.runInandEffect.forkInhanging when the attached fiber closes its own scope.#9433
4b437bfThanks @effect-bot! - Give defects precedence when the runtime combines a typed failure with a defect, so typed-error recovery can no longer swallow a crashing finalizer or a dying concurrent sibling.#9290
1af11fdThanks @effect-bot! - FixAtomHttpApiquery response mode inference so literal and union response modes are accepted and produce the corresponding success types.#9524
716f8dfThanks @tim-smart! - FixAtom.Serializableencode and decode types to useSchema.Json, matching the JSON codec used at runtime.#9404
ee27718Thanks @effect-bot! - FixSchemaGetter.BigIntto returnSchemaIssue.InvalidValuefor inputs that cannot be converted to a bigint. This also makesSchemaTransformation.bigintFromStringandSnowflake.SnowflakeFromStringreject invalid strings with typed schema errors instead of defects.#9411
4d86d1bThanks @effect-bot! - StartStream.callbackandChannel.callbackregistration before the first pull, so synchronous listener setup no longer misses early events. Browser HTTP response stream listeners now stay installed until the stream is finalized.#9323
5462ed7Thanks @effect-bot! - Fix Cause runtime JSON and inspection output to usereasonsinstead offailures, including within failed Exits. Schema validation error paths now also usereasons; Cause and Exit schema encodings are unchanged.#9400
658837cThanks @effect-bot! - Preserve input order in concurrentEffect.filterresults and recordEffect.allkeys, includingmode: "result".#9226
00261ccThanks @effect-bot! - Reconnect the DevTools client after startup connection failures or dropped connections, and log connection failures at Debug level. Stop failed or pending connections on shutdown while preserving queued telemetry flushing for healthy connections.#9261
7cccb93Thanks @effect-bot! - Preserve nanosecond precision when parsing large decimal Duration strings in units from milliseconds through weeks, and avoid intermediate overflow when converting large finite durations to numeric units.#9403
7c98228Thanks @effect-bot! - FixEffect.effectifydiscarding synchronous throws after a synchronous callback. These throws now become defects by default, or typed failures whenonSyncErroris provided.#9469
5a8e248Thanks @tim-smart! - Fix encrypted SQL event-log storage to return and publish only newly inserted entries, avoiding duplicate broadcasts when clients re-upload a batch.#9227
8037a65Thanks @effect-bot! - Preserve undecodable event payloads unchanged during group compaction so they do not stall replication or prevent valid events from being compacted.#9393
25912dbThanks @effect-bot! - Preserve remote replay order for unaffected events when compaction is enabled, and replay replacements in compactor write order at their source position.#9457
7f32606Thanks @tim-smart! - Fix IndexedDB event journal uploads resending entries the remote has not echoed back. Upload progress is now checkpointed by insertion order, so entries imported later with older ids are still forwarded. Existing databases upgrade automatically; entries the remote has not confirmed may be uploaded once more after the upgrade.#9239
0386f88Thanks @effect-bot! - PreventWorkflowEngine.layerMemoryfrom running duplicate compensations after workflow replays. Each replay now starts with a fresh workflow scope, as with the cluster engine, so only the final run's compensations run.Finalizers registered in runs that suspended still run once the execution finishes, in the same order, but they now observe
Exit.voidinstead of the execution's final exit.#9237
403298aThanks @effect-bot! - Align safe interruption inWorkflowEngine.layerMemorywith the cluster engine: workflows that finish without suspending now complete normally instead of being interrupted and running compensation. Preserve unsafe interruption across suspended replays.#9203
5a3ebc0Thanks @effect-bot! - Allow absolute HTTP URLs in opaque-origin documents, such as sandboxed srcdoc iframes, by ignoring an invalid inferred base URL. Preserve relative URL resolution when the document provides a valid base.#9390
fac2191Thanks @effect-bot! - Fix rate limiter delay mode to charge oversized token requests against the shared store, preserving queue ordering and delay/reset timing for fixed-window and token-bucket limits.#9600
fdb12dcThanks @effect-bot! - FixRequestResolver.persistedto persist only refresh results when usingstaleWhileRevalidate. Whole-batch refresh failures now replace stale values, while refreshes that complete no entries leave the original expiry unchanged.#9519
97909b8Thanks @tim-smart! - Fix dependency tracking for hydrated plain serializable atoms. They now build on first read or mount like wrapped atoms, so hydrated effect and stream atoms run on mount after SSR instead of skipping that initial run.#9241
c3983f4Thanks @effect-bot! - Preserve fractional token counts in the Redis fixed-window rate limiter so remaining capacity, excess-request rejection, and delay reservations are calculated correctly.#9568
3a5e65eThanks @tim-smart! - Run eachRequestResolver.fromEffectentry with its own caller context, without inheriting another caller's services.#9386
8b40fbcThanks @effect-bot! - FixResource.autoto wait for the first scheduled run before refreshing, avoiding an extra acquisition immediately after construction.#9379
3f3e119Thanks @boozedog! - Fix TestSchema round-trip assertions to use schema equivalence, avoiding false failures for object prototypes and signed zeros.#9317
7c7b8edThanks @effect-bot! - Fix hooks and parse options being ignored or reused across calls toSchema.toStandardSchemaV1. BothSchema.toStandardSchemaV1andSchema.toStandardJSONSchemaV1now return fresh shallow copies and compose in either order. Access statics that usethis.#fieldthrough the original class.#9383
d4f71bcThanks @effect-bot! - Fix unorderedStream.mapEffect,Stream.flattenEffect, andStream.bindEffectdropping in-flight results when concurrency isInfinityor an oversized positive number. These concurrency values now use the same safe bound as"unbounded", so successful completion waits for pending effects.#9397
c66241eThanks @effect-bot! - Invalidate atom Stream mutation reactivity keys only after successful completion, rather than on failure, defects, interruption, or replacement by a newer write.#9225
f0e941eThanks @effect-bot! - Fix unencrypted event-log replication to acknowledge already committed entries without re-running their handlers, even when storage order differs from timestamp order or entries share a timestamp. Exclude older entries from handler conflicts regardless of storage order.#9466
5f8a6e5Thanks [@effect-bot](https://redirect.github.com/effConfiguration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.